import { IPSModelObject } from '../../ipsmodel-object';
import { IPSDEDataQueryCodeCond } from './ipsdedata-query-code-cond';
import { IPSDEDataQueryCodeExp } from './ipsdedata-query-code-exp';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEDataQueryCode
 */
export interface IPSDEDataQueryCode extends IPSModelObject {
  /**
   * 数据库类型
   * @description 值模式 [云数据库类型（静态）] {DB2：DB2、 MYSQL5：MySQL5、 ORACLE：Oracle、 SQLSERVER：SqlServer、 POSTGRESQL：PostgreSQL、 PPAS：PPAS、 SQLITE：SQLite、 DM：DM、 HANA：HANA }
   * @type {( string | 'DB2' | 'MYSQL5' | 'ORACLE' | 'SQLSERVER' | 'POSTGRESQL' | 'PPAS' | 'SQLITE' | 'DM' | 'HANA')}
   */
  dBType: string | 'DB2' | 'MYSQL5' | 'ORACLE' | 'SQLSERVER' | 'POSTGRESQL' | 'PPAS' | 'SQLITE' | 'DM' | 'HANA';

  /**
   * 查询代码条件集合
   *
   * @type {IPSDEDataQueryCodeCond[]}
   */
  getPSDEDataQueryCodeConds(): IPSDEDataQueryCodeCond[] | null;

  /**
   * 查询代码条件集合
   *
   * @type {IPSDEDataQueryCodeCond[]}
   */
  get psDEDataQueryCodeConds(): IPSDEDataQueryCodeCond[] | null;

  findPSDEDataQueryCodeCond(objKey: any): IPSDEDataQueryCodeCond | null;

  /**
   * 查询代码表达式集合
   *
   * @type {IPSDEDataQueryCodeExp[]}
   */
  getPSDEDataQueryCodeExps(): IPSDEDataQueryCodeExp[] | null;

  /**
   * 查询代码表达式集合
   *
   * @type {IPSDEDataQueryCodeExp[]}
   */
  get psDEDataQueryCodeExps(): IPSDEDataQueryCodeExp[] | null;

  findPSDEDataQueryCodeExp(objKey: any): IPSDEDataQueryCodeExp | null;

  /**
   * 查询代码
   * @type {string}
   */
  queryCode: string;
}
